home *** CD-ROM | disk | FTP | other *** search
- #ifndef LIBRARIES_AHISUB_H
- #define LIBRARIES_AHISUB_H
-
- /*
- ** $VER: ahi_sub.h 4.1 (2.4.97)
- **
- ** ahi/[driver].audio definitions
- **
- ** (C) Copyright 1994-1997 Martin Blom
- ** All Rights Reserved.
- **
- ** (TAB SIZE: 8)
- */
-
- /*****************************************************************************/
-
-
- #ifndef EXEC_TYPES_H
- #include <exec/types.h>
- #endif
-
- #ifndef UTILITY_TAGITEM_H
- #include <utility/tagitem.h>
- #endif
-
- #ifndef DEVICES_AHI_H
- #include <devices/ahi.h>
- #endif
-
- #ifndef IFF_IFFPARSE_H
- #include <libraries/iffparse.h>
- #endif
-
- /*****************************************************************************/
-
- /*** STRUCTURES */
-
- /* AHIAudioCtrlDrv */
- struct AHIAudioCtrlDrv
- {
- struct AHIAudioCtrl ahiac_AudioCtrl;
- ULONG ahiac_Flags; /* See below for definition */
- struct Hook *ahiac_SoundFunc; /* AHIA_SoundFunc */
- struct Hook *ahiac_PlayerFunc; /* AHIA_PlayerFunc */
- Fixed ahiac_PlayerFreq; /* AHIA_PlayerFreq */
- Fixed ahiac_MinPlayerFreq; /* AHIA_MinPlayerFreq */
- Fixed ahiac_MaxPlayerFreq; /* AHIA_MaxPlayerFreq */
- ULONG ahiac_MixFreq; /* AHIA_MixFreq */
- UWORD ahiac_Channels; /* AHIA_Channels */
- UWORD ahiac_Sounds; /* AHIA_Sounds */
-
- APTR ahiac_DriverData; /* Unused. Store whatever you want here. */
-
- struct Hook *ahiac_MixerFunc; /* Mixing routine Hook */
- struct Hook *ahiac_SamplerFunc; /* Sampler routine Hook */
- ULONG ahiac_Obsolete;
- ULONG ahiac_BuffSamples; /* Samples to mix this pass. */
- ULONG ahiac_MinBuffSamples; /* Min. samples to mix each pass. */
- ULONG ahiac_MaxBuffSamples; /* Max. samples to mix each pass. */
- ULONG ahiac_BuffSize; /* Buffer size ahiac_MixerFunc needs. */
- ULONG ahiac_BuffType; /* Buffer format (V2) */
- BOOL (*ahiac_PreTimer)(); /* Call before mixing (V4) */
- void (*ahiac_PostTimer)(); /* Call after mixing (V4) */
-
- /* The rest is PRIVATE! Hands off! They may change any time.
- [lots of private stuff] */
- };
-
- /*** TAGS */
-
- #define AHIDB_UserBase (AHI_TagBase+500) /* Use for driver specific tags */
-
-
- /*** DEFS */
-
- /* AHIsub_AllocAudio return flags */
- #define AHISF_ERROR (1<<0)
- #define AHISF_MIXING (1<<1)
- #define AHISF_TIMING (1<<2)
- #define AHISF_KNOWSTEREO (1<<3)
- #define AHISF_KNOWHIFI (1<<4)
- #define AHISF_CANRECORD (1<<5)
- #define AHISF_CANPOSTPROCESS (1<<6)
-
- #define AHISB_ERROR (0)
- #define AHISB_MIXING (1)
- #define AHISB_TIMING (2)
- #define AHISB_KNOWSTEREO (3)
- #define AHISB_KNOWHIFI (4)
- #define AHISB_CANRECORD (5)
- #define AHISB_CANPOSTPROCESS (6)
-
- /* AHIsub_Start() and AHIsub_Stop() flags */
- #define AHISF_PLAY (1<<0)
- #define AHISF_RECORD (1<<1)
-
- #define AHISB_PLAY (0)
- #define AHISB_RECORD (1)
-
- /* ahiac_Flags */
- #define AHIACF_VOL (1<<0)
- #define AHIACF_PAN (1<<1)
- #define AHIACF_STEREO (1<<2)
- #define AHIACF_HIFI (1<<3)
- #define AHIACF_PINGPONG (1<<4)
- #define AHIACF_RECORD (1<<5)
- #define AHIACF_MULTTAB (1<<6) /* Private! */
-
- #define AHIACB_VOL (0)
- #define AHIACB_PAN (1)
- #define AHIACB_STEREO (2)
- #define AHIACB_HIFI (3)
- #define AHIACB_PINGPONG (4)
- #define AHIACB_RECORD (5)
- #define AHIACB_MULTTAB (6) /* Private! */
-
- /* AHIsub_Set#? and AHIsub_(Un)LoadSound return code */
- #define AHIS_UNKNOWN (~0)
-
- /* IFF chunk names for the audio mode file */
- #define ID_AHIM MAKE_ID('A','H','I','M') /* AHI Modes */
- #define ID_AUDN MAKE_ID('A','U','D','N') /* AUDio driver Name */
- #define ID_AUDD MAKE_ID('A','U','D','D') /* AUDio driver Data */
- #define ID_AUDM MAKE_ID('A','U','D','M') /* AUDio Mode */
-
- #endif /* LIBRARIES_AHISUB_H */
-